/* 
SPU相关的数据类型
*/

/* 
[
    {
      "id": 133,
      "spuId": 26,
      "baseSaleAttrId": 2,
      "saleAttrName": "选择版本",
      "spuSaleAttrValueList": [
        {
          "id": 225,
          "spuId": 26,
          "baseSaleAttrId": 2,
          "saleAttrValueName": "aa",
          "saleAttrName": "选择版本",
          "isChecked": null
        }
      ]
    }
  ],
*/



// SPU销售属性值类型
export interface SpuSaleAttrValueModel {
  id?: number;
  spuId?: number;
  saleAttrName?: string;

  saleAttrValueName: string;
  baseSaleAttrId: number;
 
  // "isChecked": null   // 组件中没有用到此数据
}
// SPU销售属性值列表类型
export type SpuSaleAttrValueListModel = SpuSaleAttrValueModel[];

// SPU销售属性类型
export interface SpuSaleAttrModel {
  id?: number;
  spuId?: number;
  
  baseSaleAttrId: number;
  saleAttrName: string;
  spuSaleAttrValueList: SpuSaleAttrValueListModel;

  // 页面需要的
  isEdit?: boolean;
  valueId?:number
}

// SPU销售属性列表类型
export type SpuSaleAttrListModel = SpuSaleAttrModel[];

// SPU图片
export interface spuImageModel {
  id?: number;
  spuId?: number;
  imgName: string;
  imgUrl: string;

  // 页面显示需要
  name?: string;
  url?: string;
  response?: {
    data: string;
  }
}
// SPU图片列表
export type SpuImageListModel = spuImageModel[];

// 获取SPU列表的参数类型
export interface SpuListParamsModel {
  page: number; // 页码
  limit: number; // 每页数量
  category3Id: number; // 三级分类id
}

// Spu的类型
export interface SpuModel {
  id?: number;
  category3Id: number | undefined;
  description: string;
  spuName: string;
  tmId: number | undefined;
  spuImageList: SpuImageListModel;
  spuSaleAttrList: SpuSaleAttrListModel;
}

// SPU数组的类型
export type SpuListModel = SpuModel[];

// SPU分页列表
export interface SpuPageListModel {
  total: number;
  records: SpuListModel;
}

// 基础销售属性类型
export interface BaseSaleAttrModel {
  id: number;
  name: string;
}
// 基础销售属性列表类型
export type BaseSaleAttrListModel = BaseSaleAttrModel[];

/* 
后面可能会对类型进行修改
1. 添加一些新的属性约束
2. 对已有属性进行修改    添加? / 给number类型添加undefined类型
*/
